package com.example.demo.config;

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.HashMap;

/**
 * Created with IntelliJ IDEA.
 * Description: 异常统一处理类练习2
 */
@ControllerAdvice
@ResponseBody
public class ExHandler2 {
    // 接收所有异常并规定返回格式
    // Exception.class 表示截取的是所有异常类型
    @ExceptionHandler(Exception.class)
    public HashMap<String, Object> exception(Exception e) {
        // 自定义异常返回数据格式
        HashMap<String, Object> map = new HashMap<>();
        map.put("code", "-1"); // 状态码
        map.put("msg", e.getMessage()); // 状态码的描述信息
        map.put("data", "null");
        return map;
    }

    // 接收空指针异常并返回规定格式
    @ExceptionHandler(NullPointerException.class)
    public HashMap<String, Object> nullException(NullPointerException e) {
        HashMap<String, Object> map = new HashMap<>();
        map.put("code", "-1"); // 状态码
        map.put("msg", "空指针异常：" + e.getMessage()); // 状态码的描述信息
        map.put("data", "null");
        return map;
    }
}
